Automated Photo Collages

ABSTRACT

In an embodiment, an automated process for generating photo collages including an individual photo of each member of a group, team, etc. with head shots of some or all members is provided. Various members or photographers may take digital photos of each member, capturing a full or partial body photo. The process may use face detection techniques to identify the faces in the body photos, and to automatically crop the head shots from the full body photos. The head shots may be cropped in a consistent manner, leading to a visually pleasing set of head shots in the collage. The effort required of the individuals tasked with producing the collages may be substantially reduced, in some embodiments. Additionally, the quality of the resulting collages may be improved, in some embodiments.

This application claims benefit of priority to U.S. Provisional PatentApplication Ser. No. 62/532,174, filed on Jul. 13, 2017. The aboveapplication is incorporated herein by reference in its entirety.

BACKGROUND Technical Field

Embodiments described herein are related to an automated process forgenerating photo collages from photos of individuals.

Description of the Related Art

Individuals often gather in various groups/organizations to participatein a common interest. For example, the individuals may join a sportsteam to compete in that sport. The individuals may join a club for ahobby or other interest in order to learn from one another, to socializetogether, etc. There are many types of groups/organizations with whichindividuals get involved.

Often, the individuals would like to have photographs (more briefly,“photos”) to commemorate the season, a year in the club or otherorganization, an event held by the club/organization, etc. In manycases, a photographic keepsake for organization members is provided. Thekeepsake can include an individual photo and a group photo laid out on asingle sheet. The sheet can also include other information such as thegroup name, a logo, season or event information, etc. The photo of thegiven individual may typically be a full body shot or partial body shot.

The group photo portion of the keepsake can be problematic for variousreasons. For example, members can join or leave over the course of theseason, one or more members may not be fully visible in the back of thegroup, some members looking away from the camera or blinking when thegroup photo is taken, finding a time when all members are present forthe group photo may be difficult, etc. Additionally, differences inlighting, camera type, etc. when various users take photos of variousmembers may result in noticeable differences in color, exposure,resolution, etc. in each photo. Such differences may be onerous for theindividuals making the keepsakes to resolve.

SUMMARY

In an embodiment, an automated process for generating the photo collagekeepsakes including an individual photo and head shots of the members ofa group, team, etc. is provided. Members themselves or photographer(s)may take digital photos of each member, capturing a full or partial bodyphoto. The process may use face detection techniques to identify thefaces in the full body photos, and to automatically crop the head shotsfrom the full body photos. The head shots may be cropped in a consistentmanner, leading to a visually pleasing set of head shots in the collage.The effort required of the individuals tasked with producing thecollages may be substantially reduced, in some embodiments.Additionally, the quality of the resulting collages may be improved, insome embodiments.

BRIEF DESCRIPTION OF THE DRAWINGS

The following detailed description makes reference to the accompanyingdrawings, which are now briefly described.

FIG. 1 is a block diagram illustrating one embodiment of the process ata high level.

FIG. 2 is a block diagram illustrating one embodiment of automatic headshot cropping and collage generation.

FIG. 3 is a block diagram illustrating one embodiment of user correctionof an occasional error in face detection.

FIG. 4 is a block diagram illustrating one embodiment of formats for thecollages and user-selectable controls to define a collage.

FIG. 5 is a block diagram illustrating one embodiment of a system forautomatic generation of collages, including user download of anapplication.

FIG. 6 is a block diagram illustrating one embodiment of the system forautomatic generation of collages, including user upload of photos.

FIG. 7 is a block diagram illustrating one embodiment of the system forautomatic generation of collages, including selected user uploads andexecution of application in the cloud.

FIG. 8 is a flowchart illustrating one embodiment of various actions inthe processor.

FIG. 9 is a block diagram of one embodiment of a computer system.

FIG. 10 is a block diagram of one embodiment of a computer accessiblestorage medium.

While embodiments described in this disclosure may be susceptible tovarious modifications and alternative forms, specific embodimentsthereof are shown by way of example in the drawings and will herein bedescribed in detail. It should be understood, however, that the drawingsand detailed description thereto are not intended to limit theembodiments to the particular form disclosed, but on the contrary, theintention is to cover all modifications, equivalents and alternativesfalling within the spirit and scope of the appended claims. The headingsused herein are for organizational purposes only and are not meant to beused to limit the scope of the description. As used throughout thisapplication, the word “may” is used in a permissive sense (i.e., meaninghaving the potential to), rather than the mandatory sense (i.e., meaningmust). Similarly, the words “include”, “including”, and “includes” meanincluding, but not limited to. As used herein, the terms “first,”“second,” etc. are used as labels for nouns that they precede, and donot imply any type of ordering (e.g., spatial, temporal, logical, etc.)unless specifically stated.

Within this disclosure, different entities (which may variously bereferred to as “units,” “circuits,” other components, etc.) may bedescribed or claimed as “configured” to perform one or more tasks oroperations. This formulation—[entity] configured to [perform one or moretasks]—is used herein to refer to structure (i.e., something physical,such as an electronic circuit). More specifically, this formulation isused to indicate that this structure is arranged to perform the one ormore tasks during operation. A structure can be said to be “configuredto” perform some task even if the structure is not currently beingoperated. A “clock circuit configured to generate an output clocksignal” is intended to cover, for example, a circuit that performs thisfunction during operation, even if the circuit in question is notcurrently being used (e.g., power is not connected to it). Thus, anentity described or recited as “configured to” perform some task refersto something physical, such as a device, circuit, memory storing programinstructions executable to implement the task, etc. This phrase is notused herein to refer to something intangible. In general, the circuitrythat forms the structure corresponding to “configured to” may includehardware circuits. The hardware circuits may include any combination ofcombinatorial logic circuitry, clocked storage devices such as flops,registers, latches, etc., finite state machines, memory such as staticrandom access memory or embedded dynamic random access memory, customdesigned circuitry, analog circuitry, programmable logic arrays, etc.Similarly, various units/circuits/components may be described asperforming a task or tasks, for convenience in the description. Suchdescriptions should be interpreted as including the phrase “configuredto.”

The term “configured to” is not intended to mean “configurable to.” Anunprogrammed FPGA, for example, would not be considered to be“configured to” perform some specific function, although it may be“configurable to” perform that function. After appropriate programming,the FPGA may then be configured to perform that function.

Reciting in the appended claims a unit/circuit/component or otherstructure that is configured to perform one or more tasks is expresslyintended not to invoke 35 U.S.C. § 112(f) interpretation for that claimelement. Accordingly, none of the claims in this application as filedare intended to be interpreted as having means-plus-function elements.Should Applicant wish to invoke Section 112(f) during prosecution, itwill recite claim elements using the “means for” [performing a function]construct.

As used herein, the term “based on” or “dependent on” is used todescribe one or more factors that affect a determination. This term doesnot foreclose the possibility that additional factors may affect thedetermination. That is, a determination may be solely based on specifiedfactors or based on the specified factors as well as other, unspecifiedfactors. Consider the phrase “determine A based on B.” This phrasespecifies that B is a factor is used to determine A or that affects thedetermination of A. This phrase does not foreclose that thedetermination of A may also be based on some other factor, such as C.This phrase is also intended to cover an embodiment in which A isdetermined based solely on B. As used herein, the phrase “based on” issynonymous with the phrase “based at least in part on.”

This specification includes references to various embodiments, toindicate that the present disclosure is not intended to refer to oneparticular implementation, but rather a range of embodiments that fallwithin the spirit of the present disclosure, including the appendedclaims. Particular features, structures, or characteristics may becombined in any suitable manner consistent with this disclosure.

DETAILED DESCRIPTION OF EMBODIMENTS

Turning now to FIG. 1, a block diagram illustrating a process accordingto the present disclosure is shown at a high level. The process may beused with any group of people (e.g. a team, a club, a group ofhobbyists, etc.). The process may be used to commemorate, e.g., a seasonfor a team or other organization the gathers a group for a definedperiod of time. The process may also be used to commemorate a particularevent, such as a fundraiser, an annual party, a trip, etc.

The process may include capturing an individual digital photo for eachmember of the group (reference numeral 10). The members need not havetheir photos taken at the same time, or even at the same place.Different cameras may be used, including cameras on cell phones andother portable electronic devices, as well dedicated camera devices(e.g. devices which function only as a camera, possibly with networkingfunctionality to allow for offload of captured pictures). Digital photosmay be used so that they may be transmitted and received betweencomputing devices that may implement the automated processing describedherein. It is also contemplated that more than one member may beincluded in an “individual” photo. For example, couples may be capturedtogether in an “individual” photo. Parent/child photos may be used.Family photos may be used. Any subgroup of individuals may be used in an“individual” photo, in some embodiments, and the faces in the photo maybe detected and cropped to head shots.

The member individual photo may be a “full body photo/shot,” meaningthat the photo captures significantly more of the member's body thanjust the head. The photo may capture all of the member (e.g. head tofoot), or ¾ of the member, or even ½ of the member (including the headeach time, however). Thus, the member photo will be referred to hereinas a body shot/photo.

A photo collage may be defined by a designated individual or individualsin the organization (e.g. the individual or individuals who volunteerfor the duty). The individual need not necessarily be a member of thegroup that is memorialized by the photo collage. The designatedindividual or individuals are referred to herein as the “selected user.”

The selected user may define the format of the photo collage, includingdetails such as the placement of the individual member photo, the set ofmember head shots, and any other content on the collage such as a teamname, event title, organization/team logo, name of individual, names ofmembers in the set of head shots, etc. The selected user may also reviewthe head shots and/or the final photo collage prior to transmitting thecollages for printing (or for electronic delivery, if the organizationchooses to use electronic delivery instead of printing the results). Anexample of the final collage is illustrated at reference numeral 12 inFIG. 1. There may be one final collage for each member, having thatmember's individual body photo on it. The set of members in the headshots section may include that member, or may be the other membersexclusive of that member, in various embodiments.

The head shots may be captured from the body photos automatically.Particularly, one or more face detection techniques may be applied tothe body photos to locate the faces in the photos, and the photos may beautomatically cropped to the head shot. Any face detection tool may beused. For example, in an embodiment, various freely available toolsdownloadable from the Internet may be used. One example available at thetime of filing is at trackingjs.com. Other examples that may be used inother embodiments. Any face detection algorithm or combination ofalgorithms may be used, such as Viola-Jones, convolution mechanisms,binary robust independent elementary features (BRIEF)-based mechanisms,features from accelerated segment test (FAST)-based mechanisms, etc.Solutions based on Cloudinary (cloudinary.com) may be used.

In an embodiment, once the face is located using face detection, theface may be automatically cropped. FIG. 2 is an example of oneembodiment of detecting the face and automatically cropping to the face(reference numeral 20). The same cropping may be used for each photo(e.g. the same aspect ratio for the head shot, and aligning the eyes atthe same vertical location in head shot). For the eye alignment, it ispossible that the member's head is tilted (accidentally or evenpurposefully) to one side or the other, so the eye alignment may beapplied to the center of a line between the pupils. Viewed in anotherway, the eye alignment may be applied to an average of the verticallocation of the eyes, to account for head tilting. In an embodiment, theaspect ratio and eye alignment may be specified as part of the overallphoto collage definition, by the selected user.

In one embodiment, the same settings for automated cropping are appliedto each photo, producing a substantially uniform result across the setof photos. As compared to manually cropping the photos, in which auser's judgement is involved in each individual crop, the uniformity ofthe automated cropping may be higher and therefore the final result maybe more pleasing and of a higher quality. Additionally, the effortrequired from the selected user may be substantially reduced whileproducing a higher quality result.

The set of automatically-cropped head shots may be arranged to form theset of member photos 22 on each collage. For example, theautomatically-cropped head shot 20 may be placed in location 24 of thecollage. The order of members in the head shot area may be any order invarious embodiments. In some embodiments, the order may be specified bythe user. Exemplary orders may include alphabetical by last name,alphabetical by first name, random, order according to position (e.g. ona team, or within a group if the group has an organizational structure),explicit manual order, etc.

While face detection can be a highly accurate tool, the tool mayoccasionally have a face detection error (e.g. another part of the photois identified as the face and the head shot does not include the head,or not all of the head). FIG. 3 is an example of four body shots30A-30D, and corresponding head shots 32A-32D. The head shots 32A-32Chave been properly captured by the face detection, but the head shot 32Dhas improperly captured a portion of the individual's body. In thiscase, the decoration on the clothing may bear a resemblance to a face(e.g. the buttons may be similar to eyes). In other cases, the facedetection may identify a portion of the background of the photo as aface, for similar reasons. The selected user may review the head shots,and may correct any mis-identified faces (e.g. by indicating the areafor the face detection tool to search for a face (e.g. reference numeral34 in FIG. 3). Other embodiments may permit the user to identify theeyes and nose, for example, on the face and face detection may proceedwithin the identified area. The automated cropping process noted abovemay be applied to the user-identified face, improving the uniformity ofthe result over a manual cropping process.

The automated collage process described herein may permit a variety ofcustomizations, in various embodiments. For example, FIG. 4 illustratesan embodiment of various options. The page orientation may be specifiedas portrait or landscape, and the area for the large photo, head shots,and other information may be selected. The large photo may be defined byposition (on the page) and size. Stroke and drop shadow settings may besupported. Stroke may refer to border definition, which may be appliedoutside, inside or on the border of each photo, for example. The strokemay be a dark line or any line style such as dotted, dashed, dotted anddashed, etc. The drop shadow may refer to a shadow placed underneath theimage. Drop shadow transformation may include multiple transformoperations, such as offsetting a copy of image, blurring the copy,removing the original color information and replacing it with a desiredbackground color such as black, layering the images, etc. Randomrotation options may be supported, in which each image is rotated by asmall amount to improve the visual aesthetic while supporting agenerally regular layout of the photos. Such an effect is difficult toproduce manually but may be automated to provide a higher qualityresult. Color, texture, or image choices for the background may besupported, in some embodiments. Any desired customizations may besupported, in various embodiments, or no customizations to simplify theinterface may be used. The head shot specifications may include an areafor the head shots, aspect ratio and eye position-based crop andalignment options, stroke and drop shadow settings, random rotationoptions, options for each member's name (e.g. first name, last name,both first and last name, initials, etc.). Name size, offset, andalignment to the corresponding head shot may be specified. In someembodiments, ordering options for the head shots may be configurable aswell, with various types as mentioned previously (e.g. variousalphabetical options, random, explicit manual ordering, etc. Otheroptions that may be specified may include various static graphics/photossuch as logos, static text, fonts for the text, etc. Any combination ofcustomizations may be supported, in various embodiments.

It is noted that, in an embodiment, it may be desirable to have a fairlyconsistent portion of the body captured. To do so, a user applicationthat may be downloaded to a given user device, as discussed below, maydisplay an overlay of the desired body capture on the screen thatdisplays the image that will be captured when the camera button ispressed. The overlay may improve the consistency of the original photosuploaded to the collage generation module, which may simplify thecapture of the images by the users and improve the uniformity andconsistency of the resulting collages.

FIG. 5 is a block diagram of one embodiment of a system that may employthe process described above. In the illustrated embodiment, much of thesystem may be employed in the “cloud,” a term referring to a variety ofresources that may be accessible over a network of some type, but thestructure and location of resources may not be specifically known by theuser. Accordingly, the cloud 40 in FIG. 5 may include a network 41,which may include the Internet as well as various local area networksthat couple to the internet and couple to the user devices and/orcomputing devices in the cloud 40. The network may include wirednetworking, wireless networking, and combinations thereof.

Various user devices may be used by the members of the group, includingsmartphones that have an embedded camera that may be used to capturemember photos (reference numeral 42), tablet computers, which may havean embedded camera as well (reference numeral 44), laptop computers,which may have an embedded camera but which is not likely to be used tocapture member photos as it may be unwieldy (reference numeral 46), anddesktop computers (reference numeral 48). Optionally, one or more of theuser devices may be coupled to an external dedicated camera (referencenumerals 50A-50D) or a memory card may be removed from the camera andinserted in the user device.

The user devices may download a user application 52 from the cloud 40(illustrated by the dashed lines in FIG. 5). The user application 52 maybe used to capture member body photos, tag the photos with the member'sname and optionally other metadata (e.g. name of group, name of anysubgroup within the group, position on a team, age group for multi-agegroups, etc.). The user application 52 may transmit the tagged photos tothe cloud 40 for storage and further processing to form the photocollages. For example, the cloud 40 may include a group photo database54 to store the group photos. Additional components illustrated in theembodiment of FIG. 5 may include a collage generator module 56 (morebriefly “collage generator 56”), a group definition database 58, acustom layout configuration data structure 64, a photo editor module 60(more briefly, “photo editor 60”), and a face detection module 62. Thecollage generator 56, the photo editor 60, and the face detection module62 may be programs executable in the cloud 40 (e.g. on variousapplication servers in the cloud). The group photo database 54, thegroup definition database 58, and the custom layout configuration datastructure 64 may be data structures resident on or more file servers ornetwork attached storage devices in the cloud 40.

FIG. 6 is a block diagram of the system shown in FIG. 5, illustratingthe uploading of member photos from the various user devices (e.g. viaexecution of the user application 52) to the group photo database 54,illustrated by the dotted lines in FIG. 6.

FIG. 7 is block diagram of the system shown in FIG. 5, in which theselected user may use the desktop computer 48 to define the group andits members (e.g. a roster) and to provide the customization settingsfor the photo collage, e.g. as discussed with regard to FIG. 4. Thegroup definition may be uploaded to the group definition database 58,and the customization of the photo collage may be uploaded to the customlayout configuration data structure 64. The selected user may executethe photo editor 60 to edit the group photos in the database (e.g. tocorrect for exposure and the like) and to edit the automaticallygenerated head shots to correct any errors on review. The selected usermay also execute the collage generator 56 to generate the collages. Thecollage generator 56 may invoke the face detection module 62 as part ofautomatically generating the head shots and placing the photos togenerate the collages. While the selected user uses the desktop computer48 in this example, the selected user may employ any user device toperform the various operations above, including any of the user devices42, 44, and/or 46.

FIG. 8 is a flowchart illustrating one embodiment of a simplified viewof activities that maybe performed in an embodiment of the automatedphoto collage process described herein. While the blocks are shown in aparticular order for ease of understanding, other orders may be used.Blocks may be performed in parallel, including the parallelismexplicitly shown in FIG. 8. The user application 52, the photo editor60, the face detection module 62, and/or the collage generator 56 mayinclude instructions which, when executed on one or more computersystems, implement the operation shown in FIG. 8. That is, the userapplication 52, the photo editor 60, the face detection module 62,and/or the collage generator 56 may be configured to implement theoperation shown.

Various users may download the user application 52 and may take photosof group members (block 70). The photos may be taken on a cameraembedded in the user device, or may be taken with a dedicated camera anddownloaded to the user device. In an embodiment, the taking of photosmay use other applications on the user's device, if desired. The photosmay be body shots, in an embodiment.

The users may tag the photos with identifying data (block 72). Any datamay be used. For example, the name of the group member may be added as atag. In some embodiments, additional data may be included in the one ormore tags. For example, if the group is a team, the member's position(or positions) may be included. If the group includes subgroups (e.g.age levels on a swim team), the data may include which subgroup orsubgroups the member belongs to. Any desired tags may be added, and maybe specified by the template for the photo collage. The tagging may beperformed with the user application 52, to match the tags to the dataused in the template. Alternatively, other applications may be used toperform the tagging (e.g. a camera application on the user device).

Generally, a tag may be any metadata that is attached to a photo,providing information about the photo. The tag may be associated withthe photo so that the tag is transmitted with the photo when the photois moved from location to location or device to device. A given tag mayinclude a label that identifies the information, as well as a value(e.g. text, number, alphanumeric value, etc.) associated with the labelfor that photo.

The users may upload the photos to the group photo database 54 (block74). The upload may be performed by the user application 52, since theuser application 52 may have the location of the group photo database54. Alternatively, a user may transmit the photos directly to the groupphoto database 54. If all the members photos have been uploaded(decision block 76, “yes” leg), the capture of member photos may becomplete. If not (decision block 76, “no” leg), blocks 70, 72, and 74may be repeated to capture other members. For example, some members maynot be available on a day when photos are being taken, and may bephotographed on another day.

The selected user may develop the template for the photo collages. Thus,the selected user may create a template (block 78). The user application52 may be used, for example, to create the template and store thetemplate in the custom layout configuration data structure 64. Theselected user may refine the template, select various parameters thatmay be set for the templates (e.g. as discussed previously with regardto FIG. 4). The selected user may provide custom text, logos, and othergraphics or template elements that are desired for the completedcollages (block 80). If the user wishes to further modify the template(decision block 82, “no” leg), further refinement may be performed(block 80). If the selected user is satisfied with the template (andperhaps has other group members or individuals affiliated with the groupreview and approve the template) (decision block 82, “yes” leg), thetemplate definition may be complete.

The selected user may also be tasked with providing the group definitionfor the photo collages. The selected user may upload an initial groupdefinition (e.g. a roster of members) to the group definition database58. The group definition may change over time (e.g. members may be addedor deleted). If so, the group definition in the group definitiondatabase 58 may be updated (decision block 86, “yes” leg and block 88).

At various points, the selected user may generate a set of photocollages for the group members. The collage generator 56 may be used,for example, to generate the photo collages. The collage generator 56may invoke the face detection module 62 to detect the faces in the bodyshot photos in the group photo database 54, and may use the detectedfaces to automatically generate head shots for each member (block 90).For example, the collage generator 56 may automatically crop the headshots out of the body shots, using predetermined criteria such as theaspect ratio and eye alignment in the head shot photos, as previouslydiscussed. In one embodiment, the collage generator 56 may invoke thephoto editor 60 to perform the cropping.

The selected user may review the head shots, and may use the photoeditor 60 to adjust for any errors in the automatically generated headshots (block 92). Alternatively, the selected user may review thegenerated collages to detect head shot errors, and block 92 may not beimplemented or may be skipped. The collage generator 56 mayautomatically place the head shots in the designated area or areas ofthe photo collage, based on the template (block 94). The placement mayuse the metadata to determine how to arrange the head shots, based on aselected ordering of the head shots. Additionally the collage generator54 may generate a collage for each member, with that member's body shotin the large photo area of the template. Other custom information suchas names, positions, etc. may be added based on the metadata and thetemplate. The selected user may review the collages and make any desiredadjustments (block 96). If everything is in order, the selected user mayapprove the photo collages for print (or digital delivery, if digitaldelivery is used). The collage generator 56 may transmit the finishedcollages (e.g. to the printer, to digital delivery destinations, etc.).If the photo collages are physically printed, the physical photo collagesheets may be delivered to the group or to the group members.

FIG. 8 may be a simplified view of the operations included in anembodiment of the process. For example, the blocks 90, 92, 94, 96, and98 need not wait to be performed until all photos are uploaded, thegroup definition is finalized, and the template is finalized. Instead,the blocks 90, 92, 94, 96, and 98 may be performed more than once duringthe capture, using the photos available at the time. Additionally, thetemplate may be changed and the blocks 90, 92, 94, 96, and 98 may beperformed again, or the group definition database 58 may be updated andthe blocks 90, 92, 94, 96, and 98 may be performed again. The head shotsautomatically generated through face detection may be saved (e.g. in thegroup photo database 54) and so the head shots may be generated only forthe added photos in subsequent runs, in an embodiment. Viewed in anotherway, blocks 70, 72, 74, and 76 may be independent of other blocks in theflowchart; blocks 78, 80, and 82 may be independent of other blocks inthe flowchart; blocks 84, 86, and 88 may be independent of other blocksin the flowchart; and blocks 90, 92, 94, 96, and 98 may be independentof other blocks in the flowchart.

Turning now to FIG. 9, a block diagram of one embodiment of an exemplarycomputer system 210 is shown. In the embodiment of FIG. 9, the computersystem 210 includes at least one processor 212, a memory 214, andvarious peripheral devices 216. The processor 212 is coupled to thememory 214 and the peripheral devices 216.

The processor 212 is configured to execute instructions, including theinstructions in the software described herein such as the variouscomponents that may be cloud-resident and/or on user devices. In variousembodiments, the processor 212 may implement any desired instruction set(e.g. Intel Architecture-32 (IA-32, also known as x86), IA-32 with 64bit extensions, x86-64, PowerPC, Sparc, MIPS, ARM, IA-64, etc.). In someembodiments, the computer system 210 may include more than oneprocessor. The processor 212 may be the CPU (or CPUs, if more than oneprocessor is included) in the system 210. The processor 212 may be amulti-core processor, in some embodiments.

The processor 212 may be coupled to the memory 214 and the peripheraldevices 216 in any desired fashion. For example, in some embodiments,the processor 212 may be coupled to the memory 214 and/or the peripheraldevices 216 via various interconnect. Alternatively or in addition, oneor more bridges may be used to couple the processor 212, the memory 214,and the peripheral devices 216.

The memory 214 may comprise any type of memory system. For example, thememory 214 may comprise DRAM, and more particularly double data rate(DDR) SDRAM, RDRAM, etc. A memory controller may be included tointerface to the memory 214, and/or the processor 212 may include amemory controller. The memory 214 may store the instructions to beexecuted by the processor 212 during use (including the various softwarecomponents described herein), data to be operated upon by the processor212 during use, etc.

Peripheral devices 216 may represent any sort of hardware devices thatmay be included in the computer system 210 or coupled thereto (e.g.storage devices, optionally including a computer accessible storagemedium 200 such as the one shown in FIG. 10), other input/output (I/O)devices such as video hardware, audio hardware, user interface devices,networking hardware, various sensors, etc.). Peripheral devices 216 mayfurther include various peripheral interfaces and/or bridges to variousperipheral interfaces such as peripheral component interconnect (PCI),PCI Express (PCIe), universal serial bus (USB), etc. The interfaces maybe industry-standard interfaces and/or proprietary interfaces. In someembodiments, the processor 212, the memory controller for the memory214, and one or more of the peripheral devices and/or interfaces may beintegrated into an integrated circuit (e.g. a system on a chip (SOC).

The computer system 210 may be any sort of computer system, includinggeneral purpose computer systems such as desktops, laptops, servers,etc. The computer system 210 may be a portable system such as a smartphone, personal digital assistant, tablet, etc. Different computersystems 210 may execute the various components described herein (e.g.computer systems in the cloud 40 may execute cloud-resident components,user devices may execute user applications, etc.).

FIG. 10 is a block diagram of one embodiment of a computer accessiblestorage medium 200. Generally speaking, a computer accessible storagemedium may include any storage media accessible by a computer during useto provide instructions and/or data to the computer. For example, acomputer accessible storage medium may include storage media such asmagnetic or optical media, e.g., disk (fixed or removable), tape,CD-ROM, DVD-ROM, CD-R, CD-RW, DVD-R, DVD-RW, or Blu-Ray. Storage mediamay further include volatile or non-volatile memory media such as RAM(e.g. synchronous dynamic RAM (SDRAM), Rambus DRAM (RDRAM), static RAM(SRAM), etc.), ROM, or Flash memory. The storage media may be physicallyincluded within the computer to which the storage media providesinstructions/data. Alternatively, the storage media may be connected tothe computer. For example, the storage media may be connected to thecomputer over a network or wireless link, such as network attachedstorage. The storage media may be connected through a peripheralinterface such as the Universal Serial Bus (USB). Generally, thecomputer accessible storage medium 200 may store data in anon-transitory manner, where non-transitory in this context may refer tonot transmitting the instructions/data on a signal. For example,non-transitory storage may be volatile (and may lose the storedinstructions/data in response to a power down) or non-volatile. Thecomputer accessible storage medium 200 may be on one or more fileservers in the cloud 40, in an embodiment.

The computer accessible storage medium 200 in FIG. 10 may store codeforming the photo editor 60, the face detection module 62, the collagegenerator 56, the user application 52, etc. The computer accessiblestorage medium 200 may still further store one or more data structuressuch as the group photo database 54, the group definition database 58,the custom layout configuration data structure 64, etc. The photo editor60, the face detection module 62, the collage generator 56, and the userapplication 52 may comprise instructions which, when executed, implementthe operation described above for these components.

Numerous variations and modifications will become apparent to thoseskilled in the art once the above disclosure is fully appreciated. It isintended that the following claims be interpreted to embrace all suchvariations and modifications.

What is claimed is:
 1. A non-transitory computer accessible storagemedium storing: a face detection module which, when executed, appliesautomated face detection to a plurality of digital photos, wherein theface detection module detects one or more potential faces in the each ofthe plurality of digital photos; a collage generator module which, whenexecuted, automatically generates a plurality of head shots from theplurality of digital photos responsive to the potential faces in theplurality of digital photos detected by the face detection module; andthe collage generator module, when executed, automatically inserts theplurality of photos and the plurality of head shots into a plurality ofphoto collages based on a template for the photo collages.
 2. Thenon-transitory computer accessible storage medium as recited in claim 1further storing a plurality of instructions which, when executed,transmit the plurality of photo collages for delivery.
 3. Thenon-transitory computer accessible storage medium as recited in claim 2wherein transmitting the photo collages comprises printing the pluralityof photo collages for delivery.
 4. The non-transitory computeraccessible storage medium as recited in claim 1 further storing a modulewhich, when executed, customizes the template with one or moreselections of supported settings.
 5. The non-transitory computeraccessible storage medium as recited in claim 4 wherein the supportedsettings include one or more settings that control cropping of theplurality of head shots.
 6. The non-transitory computer accessiblestorage medium as recited in claim 5 wherein the one or more settingsthat control cropping include an aspect ratio for the head shots.
 7. Thenon-transitory computer accessible storage medium as recited in claim 5wherein the one or more settings that control cropping include an eyelevel location in the head shots.
 8. The non-transitory computeraccessible storage medium as recited in claim 4 wherein the supportedsettings include one or more settings controlling placement of theplurality of head shots.
 9. The non-transitory computer accessiblestorage medium as recited in claim 8 wherein the supported settingsfurther include one or more settings controlling placement of theplurality of digital photos, wherein each of the plurality of photocollages includes a different one of the plurality of digital photos.10. The non-transitory computer accessible storage medium as recited inclaim 1 further storing a database which stores the plurality of digitalphotos.
 11. The non-transitory computer accessible storage medium asrecited in claim 1 further storing a photo editor which, when executed,accepts user input to correct one or more errors in the plurality ofhead shots due to misdetection of one or more of the potential faces.12. A method comprising: applying automated face detection to aplurality of digital photos on a computer, wherein the automated facedetection automatically detects one or more potential faces in each ofthe plurality of digital photos; responsive to the potential facesdetected in the plurality of digital photos, automatically generating aplurality of head shots from the plurality of digital photos; andautomatically inserting the plurality of digital photos and theplurality of head shots into a plurality of photo collages based on atemplate for the photo collages.
 13. The method as recited in claim 12further comprising: reviewing the plurality of headshots to detect oneor more errors in the at least one potential face detected in theplurality of head shots; and correcting the one or more errors using aphoto editor.
 14. The method as recited in claim 12 further comprisingtransmitting the plurality of photo collages for delivery.
 15. Themethod as recited in claim 12 further comprising: customizing thetemplate with one or more selections of supported settings.
 16. Themethod as recited in claim 15 wherein the supported settings include oneor more settings that control cropping of the head shots.
 17. The methodas recited in claim 16 wherein the one or more settings that controlcropping include an aspect ratio for the head shots.
 18. The method asrecited in claim 16 wherein the one or more settings that controlcropping include an eye level location in the head shots.
 19. The methodas recited in claim 15 wherein the supported settings include one ormore settings controlling placement of the plurality of head shots. 20.The method as recited in claim 19 wherein the supported settings furtherinclude one or more settings controlling placement of the plurality ofphotos, wherein each of the plurality of photo collages includes adifferent one of the plurality of photos.